<?php

// import enums
require_once ("../enums/enums.php");

// import DO
require_once ("../persistance/data/ResponsableDO.php");

// import DAO
require_once ("../persistance/dao/ResponsableDAO.php");
require_once ("../persistance/dao/ArticleDAO.php");

// import Bean data
require_once ("../bean/data/Utilisateur.php");
require_once ("../bean/data/Article.php");

/**
 * Service disponnible pour l'authentification
 */
class AuthentificationService {
	private $responsableDAO;
	public function __construct() {
		$this->responsableDAO = new ResponsableDAO ();
	}
	
	/**
	 * authenfifie l'utilisateur
	 *
	 * @throws Exception si l'utilisateur n'est pas inscrit ou si le mot de passe n'est pas bon
	 *        
	 * @param
	 *        	String login
	 * @param
	 *        	String password
	 */
	public function authentification($login, $password) {
		$responsableDO = new ResponsableDO ();
		$responsableDO = $this->responsableDAO->getResponsableDO ( $login );
		if ($responsableDO != null) {
			if ($responsableDO->getPasswordResponsable () != $password) {
				return MAUVAIS_PASSWORD;
			}
			return ADMINISTRATEUR_AUTHENTIFIE;
		}
		
		return MAUVAIS_LOGIN;
	}
	
	/**
	 *
	 *
	 * Retourne le client correspondant au login
	 * 
	 * @param String $login        	
	 */
	public function getResponsable($login) {
		$responsableDO = new ResponsableDO ();
		$responsableDO = $this->responsableDAO->getResponsableDO ( $login );
		if ($responsableDO == null) {
			return null;
		}
		
		$utilisateur = $this->convertResponsableDOtoUtilisateur ( $responsableDO );
		return $utilisateur;
	}
	private function convertResponsableDOtoUtilisateur(ResponsableDO $responsableDO) {
		$utilisateur = new Utilisateur ();
		$utilisateur->setNom ( $responsableDO->getNomResponsable () );
		$utilisateur->setPrenom ( $responsableDO->getPrenomResponsable () );
		
		return $utilisateur;
	}
}
